
// ================================主题内容=====================================

//widget url
var BASE_WIDGET_URL="cg://rexxar.longo.com/widget/";

//container_api  url
var BASE_CONTAINERSAPI_URL="http://rexxar-container/api/";

//所有跳转页面的跟地址 (默认是跳转webview页面，如果跳转本地页面，需要在page/local  添加local关键字)
var BASE_URL = BASE_WIDGET_URL+'goto?param='+'cg://longo.com/page/';

//网络请求的根地址
var BASE_NET_URL = '';
// var BASE_NET_URL = 'http://localhost:8080/';
// var BASE_NET_URL = 'http://192.168.1.104:8080/';

//post 请求成功回调函数
var POST_SUCCESS_CALLBACK; 
var POST_ERROR_CALLBACK;

var POST_SUCCESS_CALLBACK_ARR = new Array();
var POST_SUCCESS_CALLBACK_URLARR = new Array();
//post 请求事变回调函数
var POST_ERROR_CALLBACK_ARR = new Array();
var POST_ERROR_CALLBACK_URLARR = new Array();

var isIOSApply = "-1";//当前是否为ios 正在进行审核，需要部门功能隐藏，1：需要隐藏  0:不需要隐藏


var curuserid = '-1';//当前登录人的userid

var identity = '0';//默认是学生

var session_id = "";//登录id
var logininfo;//登录人的信息
var SESSIONID = "key_session_id";


//调用本地的 toast
function native_showtoast(msg){
    location.href = BASE_WIDGET_URL+'toast?message='+msg;
}

//调用本地的  dialog提示
function native_showdialog(msg){
    location.href = BASE_WIDGET_URL+'alert_dialog?data='+msg;
}

//调用本地的  显示loading等待
function native_loading(){
    location.href = BASE_WIDGET_URL+'loading';
}

//调用本地的  隐藏loading等待
function native_hideloading(){
    location.href = BASE_WIDGET_URL+'hideloading';
}

function scrollToEnd(mcontext){
    //document.write('位置：'+$(mcontext).parent().parent().parent().parent().position().top);
    //document.write('滚动位置：'+document.body.scrollHeight);
    document.body.scrollTop = document.body.scrollHeight;

}

//开始选择本地图片上传
function native_chooseupimage(deleteid){
    if(deleteid ==''){
        location.href = BASE_WIDGET_URL+'chooseupimage';
    }else{
        location.href = BASE_WIDGET_URL+'chooseupimage?deleteid='+deleteid;
    }
    
}

//判断是否是ios手机
function isIOS(){
    var u = navigator.userAgent;
    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {//安卓手机
        return false;
    } else if (u.indexOf('iPhone') > -1) {//苹果手机
        return true;
    } else {
        return false;
    }
}


function initaspdata(uinfo,strid){
    logininfo = uinfo;
    session_id = strid;
}

//跳转页面
function native_goto(params){
    location.href = BASE_URL+params;
}

//传form数据到本地
function send_formdata(data){
    location.href = BASE_WIDGET_URL+'get_form_data?data='+JSON.stringify(data);
}

//传数据到本地
function send_data(data){
    location.href = BASE_WIDGET_URL+'send_data?data='+JSON.stringify(data);
}


//url参数转换成json对象
urlParamParseJson = function (strurl){
     var reg_url = /^[^\?]+\?([\w\W]+)$/,
     reg_para = /([^&=]+)=([\w\W]*?)(&|$|#)/g,
     arr_url = reg_url.exec(strurl ),
     ret = {};
        if (arr_url && arr_url[1]) {
            var str_para = arr_url[1], result;
            while ((result = reg_para.exec(str_para)) != null) {
                ret[result[1]] = result[2];
            }
        }
     return ret;
}

function isNotNull(curval){

    if(curval == null){
        return false;
    }

    if(typeof(curval) == "undefined"){
        return false;
    }

    if(curval == 'null'){
        return false;
    }
    if(curval == ''){
        return false;
    }


    return true;
}



        //秒转换 时分秒
       function formatSeconds(value) {
            var secondTime = parseInt(value);// 秒
            var minuteTime = 0;// 分
            var hourTime = 0;// 小时
            if(secondTime > 60) {//如果秒数大于60，将秒数转换成整数
                //获取分钟，除以60取整数，得到整数分钟
                minuteTime = parseInt(secondTime / 60);
                //获取秒数，秒数取佘，得到整数秒数
                secondTime = parseInt(secondTime % 60);
                //如果分钟大于60，将分钟转换成小时
                if(minuteTime > 60) {
                    //获取小时，获取分钟除以60，得到整数小时
                    hourTime = parseInt(minuteTime / 60);
                    //获取小时后取佘的分，获取分钟除以60取佘的分
                    minuteTime = parseInt(minuteTime % 60);
                }
            }
            var result = "" + parseInt(secondTime) + "秒";
 
            if(minuteTime > 0) {
                result = "" + parseInt(minuteTime) + "分" + result;
            }
            if(hourTime > 0) {
                result = "" + parseInt(hourTime) + "小时" + result;
            }
            return result;
        }


function endWith(str,endStr){
      var d=str.length-endStr.length;
      return (d>=0&&str.lastIndexOf(endStr)==d);
 }


function escape2Html(str) {
    var arrEntities={
        'lt':'<',
        'gt':'>',
        'nbsp':' ',
        'amp':'',
        'quot':'"',
        'iexcl':'¡',
        'yen':'¥',
        'brvbar':'¦',
        'uml':'¨',
        'copy':'©',
        'ordf':'ª',
        'reg':'®',
        'macr':'¯',
        'deg':'°',
        'plusmn':'±',
        'acute':'´',
        'middot':'·',
        'ordm':'º',
        'raquo':'»',
        'times':'×',
        'divide':'÷',
        'shy':' ',
        'sum':'∑',
        'minus':'−',
        'lowast':'∗',
        'radic':'√',
        'prop':'∝',
        'infin':'∞',
        'ang':'∠',
        'and':'∧',
        'or':'∨',
        'sim':'∼',
        'cong':'≅',
        'ne':'≠',
        'equiv':'≡',
        'le':'≤',
        'ge':'≥',
        'oplus':'⊕',
        'sdot':'⋅',
        'hellip':'… ',
        'bull':'•',
        'prime':'′',
        'Prime':'″',
        'oline':'‾',
        'frasl':'⁄',
        'lceil':'⌈',
        'rceil':'⌉',
        'lfloor':'⌊',
        'rfloor':'⌋',
        'lang':'⟨',
        'rang':'⟩',
        'loz':'◊',
        'circ':'ˆ',
        'tilde':'˜',
        'ndash':'–',
        'ensp':'',
        'emsp':'',
        'thinsp':'',
        'zwnj':'',
        'zwj':'',
        'lrm':'',
        'rlm':'',
        'mdash':'—',
        'lsquo':'‘',
        'rsquo':'’',
        'sbquo':'‚',
        'ldquo':'“',
        'rdquo':'”',
        'bdquo':'„',
        'permil':'‰'
    };
    return str.replace(/&(lt|gt|nbsp|amp|quot|iexcl|yen|brvbar|uml|copy|ordf|reg|macr|deg|plusmn|acute|middot|ordm|raquo|times|divide|shy|sum|minus|lowast|radic|prop|infin|ang|and|or|sim|cong|ne|equiv|le|ge|oplus|sdot|hellip|bull|prime|Prime|oline|frasl|lceil|rceil|lfloor|rfloor|lang|rang|loz|circ|tilde|ndash|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|permil);/ig,function(all,t){return arrEntities[t];});
}


//设置当前用户的id
function set_curuser_id(cid){
    curuserid = cid;
}

//设置初始化数据
function setinitdata(data){
    identity = data;
}


//请求网络接口的函数 ，参数有4个，type：'post' 'get'  ；  url地址   ；  params 参数   callback ：success回调  callback：errorback
function net_request(posttype,url,params,successCallBack,errorCallBack){
    var contenttype = 'application/x-www-form-urlencoded';
    // params.user_id = curuserid;
    var parm = params;
    params.posttype = posttype;
    saveSuccessCallBack(url,successCallBack);
    saveErrorCallBack(url,errorCallBack);
    // if(posttype == 'post'){
    //     $.ajax({
    //             type:posttype,
    //             url:BASE_NET_URL+url,
    //             data:parm,
    //             dataType:'json',
    //             contentType:contenttype,
    //             async:true, //设置同步传输，默认是true。true:异步 false:同步
    //             beforeSend:function(){
    //             },
    //             success:function(data){
    //                 //执行回调函数
    //                 if(isNotNull(params.callbacktype)){
    //                 	data.callbacktype = params.callbacktype;
    //                 }
                    
    //                successCallBack(data);
    //             },
    //             error: function(XMLHttpRequest, textStatus, errorThrown) {
    //                         //alert(XMLHttpRequest.status);
    //                         //alert(XMLHttpRequest.readyState);
    //                         var callbackjson = {
    //                         	textStatus:textStatus
    //                         };
    //                         if(isNotNull(params.callbacktype)){
    //                         	callbackjson.callbacktype = params.callbacktype
    //                 		}
    //                     errorCallBack(callbackjson);
    //                     console.log('ajax请求接口失败');
    //             }
    //         });

    // }else{
    //     $.ajax({
    //             type:posttype,
    //             url:BASE_NET_URL+url,
    //             data:parm,
    //             // dataType:'json',
    //             dataType:'jsonp',
    //             jsonp:'callback',
    //             contentType:contenttype,
    //             async:true, //设置同步传输，默认是true。true:异步 false:同步
    //             beforeSend:function(){
    //             },
    //             success:function(data){
    //                 //执行回调函数
    //                 alert(1)
    //                successCallBack(data);
    //             },
    //             error: function(XMLHttpRequest, textStatus, errorThrown) {
    //                         //alert(XMLHttpRequest.status);
    //                         //alert(XMLHttpRequest.readyState);
    //                     errorCallBack(textStatus);
    //                     console.log('ajax请求接口失败');
    //             }
    //         });
        
    // }

    POST_SUCCESS_CALLBACK = successCallBack;
    POST_ERROR_CALLBACK = errorCallBack;
    setTimeout(function(){//location.href 不能执行太快
        params.request_url = url;
        location.href = BASE_WIDGET_URL+'get_form_data?data='+JSON.stringify(params);
    },100);
}




//android 独立的网络请求，为了解决response 太长的问题，ios 不用处理
function androidSuccessCallBack(url){
    var dtype = "json";
    // if(url.indexOf("apis/alipay") != -1){//支付校验接口特殊处理
    //     dtype = "text";
    // }
    $.ajax({
                type:'get',
                url:url,
                dataType:dtype,
                contentType:'application/x-www-form-urlencoded',
                async:true, //设置同步传输，默认是true。true:异步 false:同步
                beforeSend:function(){
                },
                success:function(data){
                    // console.log("安卓js接口返回的值："+JSON.stringify(data));
                    //执行回调函数
                    var curcallback = getSuccessCallBack(url);
                   if(isNotNull(curcallback)){

                        curcallback(data);
                   }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    var curcallback = getErrorCallBack(url);
                    if(isNotNull(curcallback)){
                        curcallback(errorThrown);
                    }
                }
            });

}


//没有网络的时候的提示
function noNetWorkShow(){
    
}


//又网络的时候的提示
function netWorkShow(){
    
}



// 
//native 主动调用 js 的成功函数回调
function successPostCallBack(strdata){
    // data需要转成json调用 ，函数urlParamParseJson();
    //var jsonData = urlParamParseJson(data);
    // console.log(POST_SUCCESS_CALLBACK_URLARR);
    // console.log(POST_ERROR_CALLBACK_ARR.length);
    if(isIOS()){
        console.log("苹果js接口返回的值："+strdata);
        var data = JSON.parse(strdata);
        if(isNotNull(data.requesturl)){//用来过渡老版本，老版本requesturl为null，就是用老版本的callback
            var curcallback = getSuccessCallBack(data.requesturl.split("?")[0]);
            if(isNotNull(curcallback)){
                curcallback(data);
            }else{
                if(isNotNull(POST_SUCCESS_CALLBACK)){
                POST_SUCCESS_CALLBACK(data);
            }    
            }
        }else{
            if(isNotNull(POST_SUCCESS_CALLBACK)){
                POST_SUCCESS_CALLBACK(data);
            }
        }
        

        
    }else{

        console.log("安卓请求url："+strdata);
        //调用android 独有的 ajax在请求一遍，然后返回
        androidSuccessCallBack(strdata);
    }
}


//native 主动调用 js 的失败函数回调
function errorPostCallBack(error){
    // if(isNotNull(POST_ERROR_CALLBACK)){
    //     POST_ERROR_CALLBACK(error);
    // }
}


//获取数组中的回调
function getSuccessCallBack(strurl){
    console.log("当前请求的url："+strurl);
    // console.log(POST_SUCCESS_CALLBACK_URLARR);
    // console.log(POST_SUCCESS_CALLBACK_ARR);

    if(POST_SUCCESS_CALLBACK_URLARR.length == 0){
        return null;
    }else{
        for(var i =0;i<POST_SUCCESS_CALLBACK_URLARR.length;i++){
            var urlitem = POST_SUCCESS_CALLBACK_URLARR[i];
            if(isNotNull(urlitem) && strurl == urlitem && POST_SUCCESS_CALLBACK_ARR.length > i){
                return POST_SUCCESS_CALLBACK_ARR[i];
            }
        }    
    }
    return null;
}



function saveSuccessCallBack(strurl,callback){
    strurl = strurl.split("?")[0];
    var ishaveindex = POST_SUCCESS_CALLBACK_URLARR.indexOf(strurl);
    if(ishaveindex != -1){//有，需要替换
        POST_SUCCESS_CALLBACK_ARR.splice(ishaveindex,1,callback);
    }else{
        POST_SUCCESS_CALLBACK_URLARR.push(strurl);
        POST_SUCCESS_CALLBACK_ARR.push(callback);
    }
    if(POST_SUCCESS_CALLBACK_URLARR.length != POST_SUCCESS_CALLBACK_ARR.length){
            POST_SUCCESS_CALLBACK_URLARR = new Array();
            POST_SUCCESS_CALLBACK_ARR = new Array();

            POST_SUCCESS_CALLBACK_URLARR.push(strurl);
            POST_SUCCESS_CALLBACK_ARR.push(callback);
    }
}


function getErrorCallBack(strurl){
    if(POST_ERROR_CALLBACK_URLARR.length == 0){
        return null;
    }else{
        for(var i =0;i<POST_ERROR_CALLBACK_URLARR.length;i++){
            var urlitem = POST_ERROR_CALLBACK_URLARR[i];
            if(isNotNull(urlitem) && strurl == urlitem && POST_ERROR_CALLBACK_ARR.length > i){
                return POST_ERROR_CALLBACK_ARR[i];
            }
        }    
    }
    return null;
}


function saveErrorCallBack(strurl,callback){
        strurl = strurl.split("?")[0];
        var ishaveindex = POST_ERROR_CALLBACK_URLARR.indexOf(strurl);
        if(ishaveindex != -1){//有，需要替换
            POST_ERROR_CALLBACK_ARR.splice(ishaveindex,1,callback);
        }else{
            POST_ERROR_CALLBACK_URLARR.push(strurl);
            POST_ERROR_CALLBACK_ARR.push(callback);
        }
}





